package tests;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import java.io.IOException;
import java.sql.SQLException;

import managers.EszkozManager;
import managers.EszkozManagerImpl;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

import workspace.Workspace;
import beans.Eszkoz;

public class EszkozTest {

	private static Workspace workspace;
	private static Long eszkozId;
	private static EszkozManager eszkozManager;

	@BeforeClass
	public static void beforeClass() throws ClassNotFoundException,
			SQLException, IOException {
		workspace = Workspace.getWorkspace("test_operator", "a");
		eszkozManager = new EszkozManagerImpl();
	}

	@Test
	public void testTipus() throws SQLException {

		// Eszkoz letrehozasa
		Eszkoz ujEszkoz = new Eszkoz();
		ujEszkoz.setMegnevezes("Teszt megnevezes");

		Eszkoz eredmenyEszkoz = eszkozManager.insertEszkoz(workspace, ujEszkoz);
		eszkozId = eredmenyEszkoz.getId();
		assertEquals(ujEszkoz.getMegnevezes(), eredmenyEszkoz.getMegnevezes());

		// Eszkoz modositasa
		ujEszkoz = eredmenyEszkoz;
		ujEszkoz.setMegnevezes("Teszt_megnevezes2");

		eredmenyEszkoz = eszkozManager.updateEszkoz(workspace, ujEszkoz);
		assertEquals(ujEszkoz.getMegnevezes(), eredmenyEszkoz.getMegnevezes());

		// Eszkoz logikai torlese
		boolean torolt = eszkozManager.deleteEszkoz(workspace, eszkozId);

		assertTrue(torolt);
	}

	@AfterClass
	public static void afterClass() throws SQLException {
		if (eszkozId != null) {
			eszkozManager.deleteEszkozForTest(workspace, eszkozId);
		}
	}

}
